Symmetrical data signal processing

ABSTRACT

In a digital communications receiver configured to receive, via a communications channel, a received first signal representing a sequence of symbols, each symbol being encoded to be representative of data bits, a method of processing the received signal includes adjusting a magnitude, filtering, and applying cyclic prefix restoration, to the received signal to produce a second signal, converting the second signal from time domain to frequency domain to produce a frequency domain signal, and determining a first quantity of values representing a first portion of the symbols by evaluating a relationship of channel values representing characteristics of the communications channel and a second quantity of values representing a portion of the frequency domain signal, the first quantity being smaller than the second quantity.

CROSS REFERENCE TO RELATED APPLICATION

This application is a division of U.S. patent application Ser. No. 11/347,747, filed Feb. 3, 2006, which is incorporated by reference as if fully set forth.

FIELD OF INVENTION

This application relates to data transmission.

BACKGROUND

Today, many forms of information are sent from information sources, such as television content providers, to receivers, such as televisions in people's homes. Thus, an example of such information is digital television (DTV) information. Transmitting digital information typically involves converting the digital information to an analog signal and modulating an RF (radio frequency) carrier frequency's amplitude and/or phase using the analog signal, and sending the modulated signal over a propagation medium.

Referring to FIG. 1, a communications system 200 includes a transmitter 202 and a receiver 204. The transmitter 202 and the receiver 204 have respective antennas 206, 208, here shown externally to the transmitter 202 and the receiver 204, although the antennas 206, 208 may be considered to be parts of the transmitter 202 and the receiver 204. The transmitter 202 is configured to send information over a propagation medium, here a terrestrial broadcast system, to the receiver 204. Transmitting information over the propagation medium introduces signal distortion caused by noise w(t) (e.g., static), strength variations (fading), phase shift variations, multiple path delays, etc. Multiple path delays result from the transmitted signals taking different paths between the transmitter and receiver through the propagation medium, e.g., due to reflections off buildings 210 and/or relay through repeater stations 212. Different paths of a transmitted signal p(t) result in different gains g₀, g₁, g₂, and different delay times d₀, d₁, d₂ that cause replicas g₁p(t−d₁), g₂p(t−d₂) of the signal p(t) to arrive at different times at the receiver 204 (like an echo) compared to the directly-transmitted signal g₀p(t−d₀). The received signal r(t) is a combination of the directly-transmitted signal and/or the replicas, if any. Multi-path distortion results in inter-symbol interference (ISI) in which weighted contributions of other symbols are added to the current symbol.

In addition to distortion and noise from the propagation medium, front-end portions of the receiver and transmitter may also introduce distortion and noise. The presence of distortion, noise, fading and multi-path delays introduced by the overall communication channel (transmitter, receiver and propagation medium), can cause digital systems to degrade or fail when the bit error rate exceeds a threshold and overcomes the error tolerance of the system.

Equalization

Equalization is employed at the receiver to help compensate for distortion of the transmitted information. The transmitted information in a digital system is pulse shape filtered symbols having discrete levels of amplitude and/or phase. The digital receiver uses a slicer to make hard decisions as to the value of the received symbol. A slicer is a decision device responsive to the received signals at its input, which outputs the nearest symbol value from the constellation of allowed discrete levels. A slicer is also known as a nearest element decision device. To the extent that a symbol is received at a level that differs from one of the allowed discrete levels, a measure of communication channel error can be detected.

The receiver uses an equalizer that is responsive to the detected error to mitigate the signal corruption introduced by the communications channel. It is not uncommon for the equalizer portion of a receiver integrated circuit to consume half of the integrated circuit area.

An equalizer is a filter that attempts to match the inverse characteristics of the communication channel. If the transmission characteristics of the communication channel are known or measured, then the equalization filter parameters can be determined. After adjustment of the equalization filter parameters, the received signal is passed through the equalizer, which compensates for the non-ideal communication channel by introducing compensating “distortions” into the received signal which tend to cancel the distortions introduced by the communication channel. In most situations such as in HDTV broadcasting, however, each receiver is in a unique location with respect to the transmitter. Accordingly, the characteristics of the communication channel between the transmitter and any given receiver are not known in advance, and may even change with time. In those situations where the communication channel is not characterized in advance, or changes with time, an adaptive equalizer is used. An adaptive equalizer has variable parameters that are calculated at the receiver. The adaptive equalizer attempts to adjust the equalizer filter parameters in order to restore received signal quality to a performance level that is acceptable.

SUMMARY

In general, in an aspect, the invention provides, in a digital communications receiver configured to receive, via a communications channel, a received first signal representing a sequence of symbols, each symbol being encoded to be representative of data bits, a method of processing the received signal, the method including adjusting a magnitude, filtering, and applying cyclic prefix restoration, to the received signal to produce a second signal, converting the second signal from time domain to frequency domain to produce a frequency domain signal, and determining a first quantity of values representing a first portion of the symbols by evaluating a relationship of channel values representing characteristics of the communications channel and a second quantity of values representing a portion of the frequency domain signal, the first quantity being smaller than the second quantity.

Implementations of the invention may include one or more of the following features. The determining includes using conjugates of some of the first quantity of values to determine a third quantity of values representing a second portion of the symbols, the second quantity equaling the first quantity plus the third quantity. The first and second portions of the symbols are disposed on opposite sides of half of a rate for the received signal. The method further includes applying MAP detection to values related to the third quantity of symbol values. The determining includes iterating each of the first quantity of values using, for a respective one of the first quantity of values: information of a previous iteration value; and a variance associated with the previous iteration value. Using the information of a previous iteration value includes using an expected value of a symbol. The method further includes determining the variance and the confidence using probabilities that an estimated value of the first quantity of values is correct. The method further includes determining the characteristics of the channel using estimates of values of the first quantity of values. The second quantity of values includes in-band and out-of-band values. The second quantity of values includes in-band values, and the determining includes setting out-of-band values to zero.

In general, in another aspect, the invention provides a digital communications receiver for receiving a VSB signal representing a sequence of encoded symbols each representative of data bits, the receiver including an input configured to receive a VSB signal from a communications channel, an amplification and filtration device coupled to the input and configured to adjust a magnitude of, and to filter, the VSB signal to produce a scaled and filtered VSB signal, and a virtual sub-carrier estimator coupled to the amplification and filtration device and configured to process the scaled and filtered VSB signal to estimate virtual sub-carriers such that the virtual sub-carriers are conjugate symmetric.

Implementations of the invention may include one or more of the following features. The virtual sub-carrier estimator is configured to alter the scaled and filtered VSB signal such that a time-domain matrix indicative of characteristics of the channel is in circulant form, to convert the circulant matrix to frequency domain, and to determine a first set of symbol values using the converted matrix of channel characteristics and a second set of data points indicated by the scaled and filtered VSB signal, where the first set includes fewer symbol values than data points included in the second set. The virtual sub-carrier estimator is configured to produce a third quantity of symbol values by using the first quantity of symbol values for a first portion of the third quantity of symbol values, and using conjugates of some of the first quantity of symbol values to determine a second portion of the third quantity of symbol values. The first and second portions of the third quantity of symbol values are disposed on opposite sides of half of a symbol rate for the received signal. The second quantity of data points includes in-band data and out-of-band data. The second quantity of data points includes in-band data, and the virtual sub-carrier estimator is configured to set values for out of band data points to zero. The virtual sub-carrier estimator is a frequency domain turbo equalizer.

In general, in another aspect, the invention provides an integrated circuit chip for receiving and processing a VSB signal representing a sequence of encoded symbols each representative of a plurality of data bits, the chip including an input configured to receive a VSB signal from a communications channel, front-end processing circuitry coupled to the input and configured to alter characteristics of the VSB signal to produce a modified signal having a desired format, and virtual sub-carrier estimator circuitry coupled to the front-end processing circuitry and configured to process the modified signal to estimate virtual sub-carriers such that the virtual sub-carriers are conjugate symmetric.

Implementations of the invention may include one or more of the following features. The virtual sub-carrier estimator circuitry is configured to alter the modified signal such that a time-domain matrix indicative of characteristics of the channel is in circulant form, to convert the circulant matrix to frequency domain, and to determine a first set of symbol values using the converted matrix of channel characteristics and a second set of data points indicated by the modified signal, where the first set includes fewer symbol values than data points included in the second set.

In accordance with implementations of the invention, one or more of the following capabilities may be provided. Matrix inversion performed by a DTV signal equalizer can be reduced compared to prior techniques. Implementation cost for a DTV signal equalizer can be reduced compared to prior techniques. A full set of received DTV signal data points can be used to determine a reduced-set of received symbols, which can be used to determine the full set of received symbols for vestigial sideband (VSB) transmissions. A frequency domain turbo equalizer can be applied to VSB DTV transmissions.

These and other capabilities of the invention, along with the invention itself, will be more fully understood after a review of the following figures, detailed description, and claims.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic diagram of a transmission channel.

FIG. 2 is a block diagram of a communications system including a vestigial sideband transmitter and a receiver.

FIG. 3 is a block diagram of functional elements of the receiver shown in FIG. 2.

FIG. 4 is a power spectrum of a timed, baseband, complex-valued ATSC signal with symbol rate Fs.

FIG. 5 is a block diagram of functional elements of, and process flow in, an equalizer shown in FIG. 3.

FIG. 6 is a block diagram of functional elements of, and process flow in, a MAP detector shown in FIG. 5.

DETAILED DESCRIPTION

Embodiments of the invention provide techniques for determining digital television (DTV) signal information, and in particular for determining DTV vestigial sideband modulated (VSB) symbols in view of multipath transmission effects. For example, a DTV receiver includes analog and digital front-end processing, an analog-to-digital converter, an equalizer, a channel decoder, and a source decoder. The equalizer is configured as a frequency domain turbo equalizer and is configured to process VSB input signals. The equalizer performs cyclic prefix (CP) restoration on received data and applies minimum mean squared error estimation using data derived from a set of received data points in the time domain to determine a reduced set of estimated symbol values in the frequency domain. The reduced set of symbol values in the frequency domain is used to derive a larger set of time domain symbol values (e.g., equal in number to the set of received data points), which are used to determine the incoming bit stream of, and thus information in, the incoming VSB signals. This equalizer configuration is exemplary, however, and not limiting of the invention as other implementations in accordance with the disclosure are possible.

Referring to FIG. 2, a communications system 10 includes a transmitter 12 and a receiver 14. The transmitter 12 and receiver 14 may be configured to communicate various types of information. Here, as an example only and not as a limitation of the invention, the transmitter 12 is a VSB transmitter for digital television (DTV) signals and the receiver 14 is a DTV receiver such as a digital television or a set-top box and digital television combination. In particular, the system 10 is configured to transmit and receive terrestrial DTV signals in accordance with the ATSC standard for North American DTV transmission. The transmitter 12 includes appropriate hardware, firmware, and/or software to implement the functions described below. The transmitter 12 includes an antenna (not shown) for sending modulated signals over a transmission medium.

The transmitter 12 includes a source encoder module 16, a channel encoder 18, a symbol mapping module 20, a training data module 22, and a VSB modulation module 24. The source encoder 16 is configured to receive binary payload data, e.g., digital audio and video information. The source encoder 16 compresses the data, e.g., in accordance with MPEG encoding, for efficient transmission. The channel encoder 18 adds redundancy, e.g., using Trellis encoding and/or Reed-Solomon encoding, to the data to protect it from transmission errors. The output from the channel encoder 18 is a binary stream of information. The symbol mapping module 20 maps the binary stream from the channel encoder 18 onto a discrete set of symbols. In the case of VSB modulations, the binary data are mapped on to a set of real-valued symbols. Here, for the ATSC standard (also known as 8-VSB), the transmitter 12 maps the 3-bit binary sequences 001, 010, 011, . . . , 110, 111, to eight symbols ±1, ±3, ±5, ±7 corresponding to eight voltage levels. A plot 26 shows exemplary 8-VSB symbols versus time. The training data module 22 inserts a pilot signal as a reference for subsequent use by the receiver 14 when performing down-conversion of the received signal from RF to baseband, and periodically inserts a small set of known training symbols into the payload symbol stream to aid in the process of reception. The VSB modulation module 24 applies the Hilbert transform, shown as a plot 28, to pulse-shape filter and convert the real-valued symbols to complex-valued data occupying about half the spectrum of the original, symmetric symbol stream. The VSB modulation module 24 further converts the resulting information into an analog signal and up-converts this signal to an RF signal, having a power spectrum shown by a plot 30, for transmission through a transmission medium to the receiver 14.

Referring to FIG. 3, the receiver 14 includes an analog front-end processing module 40, an analog-to-digital converter (ADC) 42, a digital front-end processing module 44, an equalizer 46, a channel decoder 48, and a source decoder 50. The receiver 14 is configured to receive the RF signal from the transmitter 12 (FIG. 2) through the receiver's antenna (not shown), and process the received signal to produce a recovered bit stream that is close to, if not the same, as the binary information that is the input to the transmitter 12.

The analog front-end processing module 40, the ADC 42, and the digital front-end processing module 44 are configured to convert the received RF signal to timed, baseband data. The received RF signal is processed by the analog front-end processing module 40 that performs tuning, amplification, and filtering. The module 40 down-converts the spectrum of the high radio frequency signal to a lower, intermediate frequency (IF), e.g., 44 MHz (although a receiver may be used that converts the signal directly to 0 MHz (i.e., a zero-IF, or ZIF, tuner). The analog front-end processing module 40 also amplifies or attenuates the resulting IF signal to fit into a specific voltage range that can be subsequently sampled by the ADC 42. The ADC 42 converts the amplitude-adjusted, IF signal into a digital stream using a sample rate of, e.g., about 25 MHz for ATSC signals. The resulting digital stream of information is processed by the digital front-end processing module 44 to precisely down-convert the IF signal to baseband, typically centered around 0 Hz. The digital front-end processing module 44 performs baseband tuning, amplification (possibly), and re-sampling (timing adjustment). The digital front-end processing module 44 also down-samples the signal in a timing circuit from the sample rate, e.g., about 25 MHz, to match the transmitted symbol rate of 10.76 Msymbols/sec for ATSC signals, or an integer multiple of the symbol rate. The output stream from the digital front-end processing module 44 is timed, baseband data.

Referring also to FIG. 4, a plot 60 shows the power spectrum of a timed, baseband, complex-valued ATSC signal with symbol rate Fs. This signal is a complex, VSB-modulated signal that occupies about half the bandwidth of the real-valued symbol sequence. The spectrum 60 occupies about half of the rate, Fs/2. Also, the edge of the spectrum 60 is located at DC, or zero frequency. Even though the spectrum 60 is located to the right of DC, the real (in-phase) and imaginary (quadrature) components of the spectrum 60 are individually centered around DC. A single tone 62 exists at DC, which is the pilot signal that was added to the symbol stream by the transmitter 12 (FIG. 2) to provide a reference to the receiver 12 for precise down-conversion of the RF signal to baseband. As shown, the plot 60 repeats because sampling in the time domain is reflected by multiple representations at integer multiples in the frequency domain. The timed baseband data, absent multipath effects, would be the real values of the VSB data (i.e., the symbols ±1, ±3, ±5, ±7 in the plot 26) plus j times the Hilbert transform of the VSB data. Due to multipath effects, however, the actual timed baseband data includes these data, plus these data delayed in time and attenuated for each different path.

The equalizer 46, the channel decoder 48, and the source decoder 50 convert the timed, baseband data to the recovered bit stream. The equalizer 46 is configured to process the timed, baseband data to produce an estimate of the transmitted real-valued symbol stream by correcting the effect of multipath replicas. The equalizer 46 is also configured to compensate for additive noise and interference. Details of the equalizer functionality are provided below, which may be implemented using hardware and/or software. The output of the equalizer 46 is an estimate of the transmitted symbol sequence at the symbol rate. The channel decoder 48 and the source decoder 50 reverse the encoding (e.g., Trellis and/or Reed-Solomon encoding) performed by the source encoder 16 and the channel encoder 18 (FIG. 2) in the transmitter 12. In the case of ATSC modulation, the input to the source decoder 50 is MPEG-2 encoded video and audio at about 19 Mbits/sec.

The equalizer 46 is configured to recover the stream of symbols transmitted by the transmitter 12 (FIG. 2) after the analog front-end processing module 40, the ADC 42, and the digital front-end processing module 44 have converted the received RF signal to timed, baseband data. Referring to FIG. 5, here the equalizer 46 is a frequency-domain turbo equalizer (FDTE) that includes a symbol estimator 70, a MAP detector 80, a statistics computer 82, and a channel estimator 84. The symbol estimator 70 includes a cyclic prefix (CP) restorer 72, a fast Fourier transform (FFT) module 74, a minimum mean squared error (MMSE) estimator module 76, and an FFT module 78. FDTEs are described in “Iterative Frequency-Domain Equalization for Single-Carrier Systems in Doubly-Dispersive Channels,” P. Schniter and H. Liu, Proc. Asilomar Conf. on Signals, Systems, and Computers, (Pacific Grove, Calif.), pp. 667-671, November 2004. The FDTE 46 takes into account the structure of VSB-modulated data in the MMSE module 76. The FDTE 46 operates iteratively, taking symbol estimates and confidence information about those estimates from a previous iteration to produce new symbol estimates and confidence information for the next iteration. The FDTE 46 works on a block-by-block basis in the frequency domain and can be implemented in a computationally efficient manner.

The equalizer 46 is configured to take blocks of received timed, baseband data points, e.g., of size N, and process these data points to yield N symbol estimates. For each iteration k, the FDTE 46 performs, in summary (and discussed more fully below), the following actions.

-   -   1. The CP restorer 72 applies cyclic prefix restoration to the         received data points r to conform a system model to a circulant         channel matrix structure. When performing a first iteration         (k=1), the restorer 72 uses weighted samples from a future block         of received data, while for subsequent iterations (k>1) the         restorer 72 uses hard symbol estimates from previous iterations         (e.g., k−1) from the statistics computer 82.     -   2. The FFT module 74 transforms the data from the restorer 72         into the frequency domain using a discrete Fourier transform         (implemented with a fast Fourier transform).     -   3. The MMSE module 76 obtains a minimum mean square error         estimate of virtual sub-carriers that are frequency domain         versions of the transmitted symbols. This estimate uses: (1) CP         restored frequency domain information from the restorer 72, (2)         an expectation value and variance of virtual sub-carriers from a         previous iteration output from the statistics computer 82,         and (3) a channel estimate from a previous iteration provided by         the channel estimation module 84.     -   4. The FFT module 78 produces soft symbol estimates from the         virtual sub-carrier estimates.     -   5. The MAP detector produces likelihood, or reliability         information about the soft symbol estimates.     -   6. The statistics computer uses the likelihood information to         derive hard symbol estimates and the expectation value and         variance of virtual sub-carriers.     -   7. The channel estimation module 84 combines the hard estimates         and the received data to update a channel matrix that         characterizes the transmission channel.

The equalizer 46 is configured to convert a time domain system model to the frequency domain. For example, for a low-dimensional case with N=8

$\begin{matrix} {\begin{bmatrix} r_{0} \\ r_{1} \\ \vdots \\ r_{7} \end{bmatrix} = {{\begin{bmatrix} h_{1} & h_{0} & \; & \; & \; \\ \; & h_{1} & h_{0} & \; & \; \\ \; & \; & \ddots & \ddots & \; \\ \; & \; & \; & h_{1} & h_{0} \end{bmatrix}\begin{bmatrix} s_{- 1} \\ s_{0} \\ s_{1} \\ \vdots \\ s_{7} \end{bmatrix}} + \begin{bmatrix} w_{0} \\ w_{1} \\ \vdots \\ w_{7} \end{bmatrix}}} & (1) \end{matrix}$

where r_(i) are the received data, hi are channel coefficients that characterize the channel properties (Hilbert transform, etc.), s_(i) are the transmitted symbols, and w_(i) are sampled noise and interference. For two non-zero channel coefficients, for the n^(th) received data point, r_(n)=h₁s_(n−1)+h₀s_(n). For an arbitrary number of non-zero channel coefficients,

$r_{n} = {{\sum\limits_{j}{h_{j}s_{n - j}}} + {w_{n}.}}$

Thus, the next, in this example, received data point is given by

r ₈ =h ₁ s ₇ +h ₀ s ₈ +w ₈  (2)

with the received data point, here r₈, being a function of the symbol for that data point, s₈, plus delayed versions of the previous symbol, r₇, plus noise and interference, w₈, for that data point. In this example, only the immediately prior symbol is used in estimating the current symbol, but further prior symbols could be used.

The CP restorer 72 applies cyclic prefix restoration to the received data r. During the first iteration CP restoration is done by using the received data r, a gain factor a, and the previously estimated symbol ŝ⁻¹ (estimated from the previous block of N symbols, and set to a default value, such as zero, if no previous symbol estimate exists) to yield the vector y⁽¹⁾, where the superscript (1) denotes the first iteration. Here, it is assumed that the previously estimated symbol corresponds to the correct transmitted symbol, i.e. ŝ⁻¹=s⁻¹. The vector y⁽¹⁾ is then:

$\begin{matrix} {\underset{\underset{y^{(1)}}{}}{\begin{bmatrix} y_{0}^{(1)} \\ y_{1}^{(1)} \\ \vdots \\ y_{7}^{(1)} \end{bmatrix}} = \begin{bmatrix} {r_{0} - {h_{1}s_{- 1}} + {ar}_{8}} \\ r_{1} \\ \vdots \\ r_{7} \end{bmatrix}} & \left( {3a} \right) \\ {\mspace{59mu} \begin{matrix} {= {{\underset{\underset{F^{- 1}{CF}}{}}{\begin{bmatrix} h_{0} & \; & \; & h_{1} \\ h_{1} & h_{0} & \; & \; \\ \; & \ddots & \ddots & \; \\ \; & \; & h_{1} & h_{0} \end{bmatrix}}\underset{\underset{s}{}}{\begin{bmatrix} s_{0} \\ s_{1} \\ \vdots \\ s_{7} \end{bmatrix}}} + \begin{bmatrix} {w_{0} + {aw}_{8}} \\ w_{1} \\ \vdots \\ w_{7} \end{bmatrix} +}} \\ {{{\begin{bmatrix} \ldots & 0 & {\left( {a - 1} \right)h_{1}} \\ \; & \ldots & 0 \\ \; & \; & \vdots \end{bmatrix}\begin{bmatrix} s_{0} \\ s_{1} \\ \vdots \\ s_{7} \end{bmatrix}}\; + {\begin{bmatrix} {ah}_{0} & 0 & \ldots \\ 0 & \ldots & \; \\ \vdots & \; & \; \end{bmatrix}\underset{\underset{s_{pre}}{}}{\begin{bmatrix} s_{8} \\ s_{9} \\ \vdots \\ s_{15} \end{bmatrix}}}}} \end{matrix}} & \left( {3b} \right) \end{matrix}$

with the CP restoration being shown in equation (3a) and the channel matrix in equation (3b) being a circulant matrix. A general form for equations (3a) and (3b) is provided and discussed in “Efficient cyclic prefix reconstruction for coded OFDM systems,” C. Park and G. Im, IEEE Communications Letters, vol. 8, no. 5, May 2004, pp. 274-276. With a circulant matrix, time domain information can be cast to the frequency domain and the matrix inverted in a simple fashion. For subsequent iterations, k=2, 3, . . . , the symbol estimates ŝ_(i) ^((k−1)) (also called hard symbol estimates) derived from the previous iteration (k−1) can be used for an alternative CP restoration:

$\begin{matrix} {\underset{\underset{y^{(k)}}{}}{\begin{bmatrix} y_{0}^{(k)} \\ y_{1}^{(k)} \\ \vdots \\ y_{7}^{(k)} \end{bmatrix}} = \begin{bmatrix} {r_{0} - {h_{1}s_{- 1}} + {h_{1}{\hat{s}}_{7}^{({k - 1})}}} \\ r_{1} \\ \vdots \\ r_{7} \end{bmatrix}} & \left( {4a} \right) \\ {\mspace{70mu} {= {{\underset{\underset{C}{}}{\begin{bmatrix} h_{0} & \; & \; & h_{1} \\ h_{1} & h_{0} & \; & \; \\ \; & \ddots & \ddots & \; \\ \; & \; & h_{1} & h_{0} \end{bmatrix}}\underset{\underset{s}{}}{\begin{bmatrix} s_{0} \\ s_{1} \\ \vdots \\ s_{7} \end{bmatrix}}} + \begin{bmatrix} w_{0} \\ w_{1} \\ \vdots \\ w_{7} \end{bmatrix} + \begin{bmatrix} {h_{1}\left( {{\hat{s}}_{7}^{({k - 1})} - s_{7}} \right)} \\ 0 \\ \vdots \\ 0 \end{bmatrix}}}} & \left( {4b} \right) \end{matrix}$

In equations (3) and (4) the channel matrix from equation (1) has been manipulated into circulant form and can be factored as F⁻¹CF where F is a DFT (of FFT) matrix/operation, and C (the channel matrix in equation (4b)) is a circulant matrix to result in the diagonalized system in equation (6) below. The CP restorer 72 calculates the values of y using equations (3a) and (4a), using estimates of the channel coefficients h from the channel estimator 84 and hard symbol estimates from a previous iteration from the MAP detector 80, and outputs the y values to the FFT module 74. For the first iteration, the channel coefficients h are set to default values, e.g., zero.

The FFT module 74 takes an FFT of the CP restored data to yield

x ^((k)) =Fy ^((k))  (5)

where F represents the FFT operation. The frequency domain points x_(i) ^((k)) are shown in the power spectrum plot 60 in FIG. 4. The FFT module 74 outputs the frequency domain points x_(i) ^((k)) to the MMSE estimator 76. With the FFT applied, the frequency domain model becomes:

$\begin{matrix} {\underset{\underset{y^{(k)}}{}}{\begin{bmatrix} x_{0}^{(k)} \\ x_{1}^{(k)} \\ \vdots \\ x_{7}^{(k)} \end{bmatrix}} = {{\begin{bmatrix} H_{0} & \; & \; & \; \\ \; & H_{1} & \; & \; \\ \; & \; & \ddots & \; \\ \; & \; & \; & H_{7} \end{bmatrix}\underset{\underset{s}{}}{\begin{bmatrix} t_{0} \\ t_{1} \\ \vdots \\ t_{7} \end{bmatrix}}} + \begin{bmatrix} u_{0} \\ u_{1} \\ \vdots \\ u_{7} \end{bmatrix}}} & (6) \end{matrix}$

where the u matrix is the Fourier transform of the w, noise, matrix, the x matrix data points are the received data in the frequency domain, the H matrix is the channel matrix in the frequency domain (provided by the channel estimator 84), and the t matrix is the Fourier transform of the symbol matrix (t=Fs) (i.e., the symbols in the frequency domain) and the data points in the t matrix are called the virtual sub-carriers, in reference to the sub-carriers in an OFDM (Orthogonal Frequency Division Multiplexing) system. Application of the principles of the FDTE 46 allow equation (1) to be rewritten as equation (6), which simplifies the matrix to be inverted and thus facilitates determination of the received symbols. For VSB modulations, the virtual sub-carriers are conjugate symmetric about half the symbol rate because the s values in the symbol matrix are real valued. Thus,

[t ₀ t ₁ . . . t ₇ ]=[t ₀ t ₁ t ₂ t ₃ t ₄ t ₃ * t ₂ * t ₁*]  (7)

Applying equation (7) to the system model of equation (6), the system model may be re-written as:

$\begin{matrix} {\begin{bmatrix} x_{0} \\ x_{1} \\ x_{7}^{\star} \\ x_{2} \\ x_{6}^{\star} \\ x_{3} \\ x_{5}^{\star} \\ x_{4} \end{bmatrix} = {{\underset{\underset{H}{}}{\begin{bmatrix} H_{0} & \; & \; & \; & \; \\ \; & H_{1} & \; & \; & \; \\ \; & H_{7}^{\star} & \; & \; & \; \\ \; & \; & H_{2} & \; & \; \\ \; & \; & H_{6}^{\star} & \; & \; \\ \; & \; & \; & H_{3} & \; \\ \; & \; & \; & H_{5}^{\star} & \; \\ \; & \; & \; & \; & H_{4} \end{bmatrix}}\begin{bmatrix} t_{0} \\ t_{1} \\ t_{2} \\ t_{3} \\ t_{4} \end{bmatrix}} + \begin{bmatrix} u_{0} \\ u_{1} \\ u_{7}^{\star} \\ u_{2} \\ u_{6}^{\star} \\ u_{3} \\ u_{5}^{\star} \\ u_{4} \end{bmatrix}}} & (8) \end{matrix}$

where, for simplicity, the indication of the iteration number (k) has been omitted. Thus, applying the symmetrical properties of VSB data, the number of frequency domain symbol values to be determined has reduced from eight, in this example, to five. Further, as seen from equation (8), all of the N received data points are used in determining the reduced set of symbols (i.e., here x₀ through x₈ are used to determine t₀ through t₄). For each virtual sub-carrier {tilde over (t)}_(i) ^((k)), the equalizer 46 uses in-band data and channel estimates, i.e. x_(i) ^((k)) and H_(i) respectively, with corresponding out-of-band data and channel estimates, reflected over half the sampling frequency, i.e., x_(N−i) ^((k)) and H_(N−i) respectively. The system 10 thus exploits the symmetry to efficiently recover the transmitted symbols at the receiver 14. An advantage of this method can be seen in Equation (8), where more equations than unknown variables are being used to estimate the virtual sub-carriers.

The MMSE module 76 recovers the values for t, which are the frequency domain symbols. The MMSE module 76 applies a minimum mean squared error algorithm to recover estimated values for the t data points. The MMSE algorithm applied by the MMSE module 76 reduces error between true virtual sub-carriers and estimated virtual sub-carriers. The number of iterations performed by the MMSE module 76 can be limited in a variety of ways. For example, a variance determined by the statistics computer 82 may be monitored and iterations performed until the variance reduces to within a desired tolerance (e.g., is smaller than a desired threshold), or a maximum number of allowable iterations is performed. Alternatively, the MMSE module 76 may perform a fixed number of iterations no matter what the value of the variance (or any other factor) is. To estimate the virtual sub-carrier values for iterations after the first iteration, the MMSE module 76 uses the expected/estimated virtual sub-carrier values, and variances of these estimated values, determined by the statistics computer 82 in the immediately-prior iteration. In particular, the MMSE module 76 calculates the estimated virtual sub-carrier according to:

{tilde over (t)} ^((k)) = t ^((k−1)) +D(v _(t) ^((k−1)) H ^(H)(HD(v _(t) ^((k−1)) H ^(H)+σ² I)⁻¹(x ^((k)) −H t)  (9)

where t ^((k−1)) and v_(t) ^((k−1)) are the expected value and variance of the virtual sub-carriers computed by the statistics computer 80 from the previous iteration, D(v_(t) ^((k−1))) is the diagonal matrix comprising the elements of v_(t) ^((k−1)), σ² is the power of the interference term u, I is an identity matrix, and x^((k)) is the CP restored sample in the frequency domain. The expected value t ^((k−1)) is the frequency domain mean (average) of the possible values of a particular symbol. The variance averages the squared difference between the estimated virtual sub-carriers {tilde over (t)}^((k−1)) and the expected value t ^((k−1)), thus providing a measure of confidence in the estimates. The expected value and the variance from the previous iteration may improve the estimation of the virtual sub-carrier, but need not be used (with the MAP detector 80 and the statistics computer 82 also not being used and thus not part of the equalizer). For the first iteration, the variance and the expected value of each symbol can be set to respective default values, e.g., unity and zero, although the default values need not be zero and need not be the same for the expected value and variance, or the same for each symbol expected value.

Some mathematical manipulations can be used to restructure equation (9) to provide insight into its use. To further illustrate the MMSE estimation over each iteration k, define G^((k−1))=H^(H)(HD(v_(t) ^((k−1)))H^(H)+σ²I)⁻¹ and rewrite equation (9) as

{tilde over (t)} ^((k))=(I−D(v _(t) ^((k−1)))G ^((k−1)) H) t ^((k−1)) +D(v _(t) ^((k−1)))G ^((k−1)) x ^((k))  (9a)

The first component (before the plus sign) of the MMSE estimate in equation (9a) is approximately equal to the virtual sub-carrier estimates t ^((k−1)) using the a priori information from the statistics computer 82 (described below) times the degree of confidence in that estimate according to the factor (I−D(v_(t) ^((k−1)))G^((k−1))H). The second component (after the plus sign) of the MMSE estimation is based on the estimates from the CP restored data G^((k−1))x^((k)) and the lack of confidence of the expected value according to the factor D(v_(t) ^((k−1))). For the first iteration, k=1, the variance is 1 and the mean symbol value of the prior iteration (which is nonexistent) is zero, i.e., v_(t) ^((k−1))=[_(1 . . . 1]) ^(T) and t ⁽⁰⁾=0, and therefore {tilde over (t)}^((1)=H) ^(H)(HH^(H)+σ²I)⁻¹x⁽¹⁾. As iterations progress, assuming the variance approaches zero, i.e., v_(t) ^((k−1))→[0 . . . 0]^(T), then the estimated symbol approaches the mean symbol estimate from the previous iteration, which approaches the actual symbol, i.e., {tilde over (t)}^((k))→ t ^((k−1))→t.

While equation (8) provides a specific example, for N=8, of the relationship of the received data, x, the channel model H, the transmitted data t, and the noise/interference u, a general form for this relationship is given by:

$\begin{matrix} {H = {\begin{bmatrix} H_{0} & \; & \; & \; & \; \\ \; & H_{1} & \; & \; & \; \\ \; & H_{N - 1}^{\star} & \; & \; & \; \\ \; & \; & \ddots & \; & \; \\ \; & \; & \ddots & \; & \; \\ \; & \; & \; & H_{{N/2} - 1} & \; \\ \; & \; & \; & H_{{N/2} + 1}^{\star} & \; \\ \; & \; & \; & \; & H_{N/2} \end{bmatrix}.}} & (10) \end{matrix}$

Using this form, each virtual sub-carrier is given by

$\begin{matrix} {{{\overset{\sim}{t}}_{i}^{(k)} = {{\overset{\_}{t_{i}}}^{({k - 1})} + {v_{t_{i}}^{({k - 1})}\frac{{{Re}\left( {H_{i}^{\star}x_{i}^{(k)}} \right)} - {{H_{i}}^{2}{\overset{\_}{t_{i}}}^{({k - 1})}}}{{v_{t_{i}}^{({k - 1})}{H_{i}}^{2}} + \sigma^{2}}}}},{i = 0},{N/2}} & (11) \end{matrix}$

and

$\begin{matrix} {{{\overset{\sim}{t}}_{i}^{(k)} = {{\overset{\_}{t_{i}}}^{({k - 1})} + {v_{t_{i}}^{({k - 1})}\frac{\begin{matrix} {{{Re}\left( {{H_{i}^{\star}x_{i}^{(k)}} + {H_{N - i}x_{N - i}^{{(k)}^{\star}}}} \right)} -} \\ {\left( {{H_{i}}^{2} + {H_{N - i}}^{2}} \right){\overset{\_}{t_{i}}}^{({k - 1})}} \end{matrix}}{{v_{t_{i}}^{({k - 1})}\left( {{H_{i}}^{2} + {H_{N - i}}^{2}} \right)} + \sigma^{2}}}}},{i \in \left\{ {1,\ldots \mspace{14mu},{{N/2} - 1}} \right\}}} & (12) \end{matrix}$

where equations (11) and (12) provide the generic form of equation (9) for the respective values of i shown.

The FFT module 78 receives the frequency domain symbol estimates {tilde over (t)}_(i) ^((k)) derived using equation (9) from the MMSE estimator 76 and converts them into the time domain. The FFT module 78 takes the inverse FFT of the MMSE virtual sub-carriers, while using the conjugate symmetric property of equation (7) to produce soft symbol estimates according to

{tilde over (s)} ^((k)) =F ⁻¹ [{tilde over (t)} ₀ ^((k)) {tilde over (t)} ₁ ^((k)) {tilde over (t)} ₂ ^((k)) {tilde over (t)} ₃ ^((k)) {tilde over (t)} ₄ ^((k)) {tilde over (t)} ₃ ^((k)*) {tilde over (t)} ₂ ^((k)*) {tilde over (t)} ₁ ^((k)*)]^(T).  (13)

In equation (13), the conjugate-symmetric nature of the information being used is exploited to recover the transmitted symbols {tilde over (t)}_(i) ^((k)). Using equation (13), the recovered symbol estimates are real valued (because the inverse FFT of a symmetric vector as in equation (13) is real valued), as are the originally transmitted data. The FFT module 78 outputs the soft symbol stream of the last iteration, k, to the channel decoder 48 (FIG. 3), and to the MAP detector 80.

Referring also to FIG. 6, the MAP (maximum a posteriori) detector 80 includes a conditional distribution calculator 110 and a BCJR decoder 112. The MAP detector 80 receives the soft symbol estimates from the FFT module 78 and converts these into hard symbol estimates ŝ_(n) ^((k)). The MAP detector 80 increases, possibly maximizes, the probability that a particular symbol s_(n) has been transmitted given the soft symbol information from the symbol estimator 70. This probability is referred to as the a posteriori probability P_(MAP) ^((k))(s_(n)=a|{tilde over (s)}^((k))). The MAP detector 80 derives the a posteriori probability from a soft estimate distribution function conditioned on each possible symbol, i.e. p({tilde over (s)}_(n) ^((k))|s_(n)=a). For example, for VSB, the possible symbols are ±1, ±3, 35 5, and ±7, and if a soft symbol estimate is 1.1, then the probabilities for each possible symbol might be 0.95 for symbol +1, 0.02 for −1 and +3, and 0.01 for all others combined. The conditional distribution calculator 110 evaluates soft estimate conditional distributions p({tilde over (s)}_(n) ^((k))|s_(n)=a), given by equation (15) and is described below. In particular, the MAP detector 80 calculates hard symbol estimates according to

$\begin{matrix} {{\hat{s}}_{n}^{(k)} = {\arg \; {\underset{\underset{P_{MAP}^{(k)}{({s_{n} = {\alpha {\overset{\sim}{s}}^{(k)}}})}}{}}{\max\limits_{\alpha \in S}{p\left( {s_{n} = {\alpha {\overset{\sim}{s}}^{(k)}}} \right)}}.}}} & (14) \end{matrix}$

The MAP detector 80 outputs the hard estimates to the CP restorer 72 and to the channel estimator 84.

The BCJR decoder 112 performs the MAP detection, taking as inputs the conditional distribution p({tilde over (s)}_(n) ^((k))|s_(n)=a). In this embodiment, it is assumed that a priori probabilities are evenly distributed (i.e., p^((k−1))(s_(n)=a)=⅛ for 8-VSB) to generate and increase, and possibly maximize, the a posteriori probabilities shown in the intermediate stage in equation (14). This, however, is not necessary and the output MAP probabilities could be used as input a priori (not evenly distributed) probabilities in the subsequent iteration.

The MAP detector 80 uses the conditional distributions evaluated at the soft symbol estimates and at each possible transmitted symbol value a. The conditional distribution may be approximated by

$\begin{matrix} {{\rho \left( {{{\overset{\sim}{s}}_{n}^{(k)}s_{n}} = \alpha} \right)} = {\frac{1}{\sqrt{2\; {\pi\sigma}_{n,\alpha}^{2}}}{\exp \left( {- \frac{\left( {{\overset{\sim}{s}}_{n}^{(k)} - \mu_{n,\alpha}} \right)^{2}}{2\sigma_{n,\alpha}^{2}}} \right)}}} & (15) \end{matrix}$

where the mean μ_(n,a) and variance σ² _(n,a) are computed by expanding equations (13) and (9) for {tilde over (s)}_(n) ^((k)) as a sum of the symbol value a and the contribution of the interference from other symbols and the channel noise. The MAP detector 80, in particular the BCJR decoder 112, sends the maximum a posteriori probabilities to the statistics computer 82.

The statistics computer 82 uses the conditional probabilities from the MAP detector 80 to derive the expected value and variance statistics of the virtual sub-carriers. The statistics computer 82 computes the expected value and variance according to

$\begin{matrix} {{\overset{\_}{s}}_{n}^{(k)} = {\sum\limits_{\alpha_{i} \in S}{\alpha_{i}{P_{MAP}^{(k)}\left( {s_{n} = {\alpha_{i}{\overset{\sim}{s}}^{(k)}}} \right)}}}} & (16) \\ {v_{s_{n}}^{(k)} = {{\sum\limits_{\alpha_{i} \in S}{{\alpha_{i}}^{2}{P_{MAP}^{(k)}\left( {s_{n} = {\alpha_{i}{\overset{\sim}{s}}_{n}^{(k)}}} \right)}}} - {\overset{\_}{s}}_{n}^{(k)}}} & (17) \end{matrix}$

where s is the source constellation (i.e., s={±1, ±3, ±5, ±7} for 8-VSB). The statistics computer 82 transforms these parameters to the frequency domain by taking the FFT of equations (16) and (17) to obtain corresponding quantities for the virtual sub-carriers according to

t ^((k)) =F s ^((k))  (18)

v _(t) _(n) ^((k)) =[FD(v _(s) ^((k)))F ^(H)]_(n,n).  (19)

Preferably, however, the statistics computer 82 determines the average virtual sub-carrier variance according to

v _(t) _(n) ^((k)) =[FD(v _(s) ^((k)))F ^(H)]_(n,n)  (20)

That simplifies computations.

The channel estimator 84 uses the hard symbol estimates received from the MAP detector 80 to estimate the channel coefficients for use by the MMSE estimator module 78. Although channel estimation may be performed in other ways, here the channel estimator 84 performs a cross-correlation of the hard symbol estimates from the MAP detector 80 with the received data such that if the hard symbol estimates are correct, i.e., ŝ_(n)=s_(n), then channel impulse response estimates are given by averaging according to

$\begin{matrix} {{\hat{h}}_{i} = {\frac{E\left\{ {r_{n}{\hat{s}}_{n - i}} \right\}}{E\left\{ s_{n}^{2} \right\}}.}} & (21) \end{matrix}$

Assuming an iid (independent and identically distributed) system, unbiased channel impulse response estimates are given by ĥ_(i)=h_(i) because r_(n)=h₀s_(n)+h₁s_(n−1)+ . . . +h_(M)s_(n−M)+w_(n). Preferably, the channel estimator 84 implements the averaging in equation (21) with a leaky integration according to

$\begin{matrix} {{{\hat{h}}_{i}^{l} = {{\left( {1 - \lambda} \right){\hat{h}}_{i}^{l - 1}} + {\lambda \frac{r_{n}{\hat{s}}_{n - i}}{E\left\{ s_{n}^{2} \right\}}}}},{0 < {\lambda {\operatorname{<<}1.}}}} & (22) \end{matrix}$

The channel estimator 84 preferably updates the channel impulse response estimates after each iteration k of the equalizer 46 as more accurate hard symbol estimates may improve the channel impulse response estimates. The channel estimator 84 further converts the time-domain impulse response estimates to the frequency domain using an N-point FFT, with a length of the channel estimate being less than or equal to N coefficients. The resulting channel coefficients are provided to the MMSE module 78 for use as described above. Further detail of channel estimation implemented by the channel estimator 84 is described in “Performance analysis of Godard-based blind channel identification,” P. Schniter, R. A. Casas, A. Touzni, C. R. Johnson, Jr., IEEE Transactions on Signal Processing, September 1999.

Other embodiments are within the scope and spirit of the invention. For example, due to the nature of software, functions described above can be implemented using software, hardware, firmware, hardwiring, or combinations of any of these. Features implementing functions may also be physically located at various positions, including being distributed such that portions of functions are implemented at different physical locations.

Further reductions in calculation complexity may also be implemented. For example, referring to FIG. 4 and equations (8) and (12), estimation complexity may be reduced by setting (e.g., to zero) out-of-band data x_(N−i) ^((k)) and channel estimates N_(N−i) for some i, in particular for points in a frequency range 90 between in-band edges 92, 94, where the out-of-band data are reduced in amplitude. The values of x in the range 90 are very nearly zero. Thus, while the actual values of x in the frequency range 90 may be used in equations (8) and 12, the x values in this range 90 may be set to zero, which simplifies the calculations for equations (8) and (12).

Further, while the description above refers to the invention, the description may include more than one invention. 

1. In a digital communications receiver configured to receive, via a communications channel, a received first signal representing a sequence of symbols, each symbol being encoded to be representative of a plurality of data bits, a method of processing the received signal, the method comprising: adjusting a magnitude, filtering, and applying cyclic prefix restoration, to the received signal to produce a second signal; converting the second signal from time domain to frequency domain to produce a frequency domain signal; and determining a first quantity of values representing a first portion of the symbols by evaluating a relationship of channel values representing characteristics of the communications channel and a second quantity of values representing a portion of the frequency domain signal, the first quantity being smaller than the second quantity.
 2. The method of claim 1 wherein the determining further comprises using conjugates of some of the first quantity of values to determine a third quantity of values representing a second portion of the symbols, the second quantity equaling the first quantity plus the third quantity.
 3. The method of claim 2 wherein the first and second portions of the symbols are disposed on opposite sides of half of a rate for the received signal.
 4. The method of claim 2 further comprising applying MAP detection to values related to the third quantity of symbol values.
 5. The method of claim 1 wherein the determining further comprises iterating each of the first quantity of values using, for a respective one of the first quantity of values: information of a previous iteration value; and a variance associated with the previous iteration value.
 6. The method of claim 5 wherein using the information of a previous iteration value comprises using an expected value of a symbol.
 7. The method of claim 5 further comprising determining the variance and the confidence using probabilities that an estimated value of the first quantity of values is correct.
 8. The method of claim 1 further comprising determining the characteristics of the channel using estimates of values of the first quantity of values.
 9. The method of claim 1 wherein the second quantity of values includes in-band and out-of-band values.
 10. The method of claim 1 wherein the second quantity of values includes in-band values, and the determining includes setting out-of-band values to zero. 